#include<stdio.h>
#include<string.h>
#include<sys/types.h>
#include<sys/wait.h>
#include<unistd.h>
#include<stdlib.h>
#include<wait.h>

int main()
{

    pid_t id = fork();

    if(id==0)
    {
        //child
        printf("我是子进程正在等待父进程回收\n");
        sleep(1);
        printf("我是子进程正在等待父进程回收\n");
        sleep(1);
        printf("我是子进程正在等待父进程回收\n");
        sleep(1);
        exit(88);
    }
    else
    {
        //father
        int status=0;
        waitpid(-1,&status,0);
        if(WIFEXITED(status))
        {
            printf("已经拿到了退出信号：%d，coredump位：%d，退出码：%d\n",(status & 0x7F) , ((status>>7)&1), WEXITSTATUS(status));
            //printf("已经拿到了退出信号：%d，coredump位：%d，退出码：%d\n",(status & 0x7F) , WCOREDUMP(status), WEXITSTATUS(status));
        }
        else{
            exit(-1);
        }
    }
    return 0;
}
